#include "widget.h"
#include "ui_widget.h"
#include <QTimer>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    // 1 开启定时器，时间到了，会触发一个事件，调用timerEvent方法
    timerid1 = startTimer(1000);   // 单位是毫秒
    timerid2 = startTimer(2000);   // 单位是毫秒

    // 2 使用定时器的第2种方式，时间到了，会触发一个信号，QTimer::timeout
    auto timer = new QTimer(this);
    timer->start(500);  // 启动定时器
    connect(timer, &QTimer::timeout,[=]{
        static int num= 1;
        ui->label_3->setText(QString::number(num++));
    });
    // 推荐使用第2种方式，代码简洁，并且有多个定时器时，逻辑相互独立

    // 3 点击暂停按钮 实现停止定时器
    connect(ui->pushButton, &QPushButton::clicked,[=]{
       timer->stop();
    });
}

Widget::~Widget()
{
    delete ui;
}

void Widget::timerEvent(QTimerEvent *e)
{
    if (e->timerId() == timerid1) {
        // 每一秒加1
        static int num1= 1;
        ui->label->setText(QString::number(num1++));
    }
    if (e->timerId() == timerid2) {
        // 每两秒加1
        static int num2 = 1;
        ui->label_2->setText(QString::number(num2++));

    }
}
